package com.xuecheng.api.course;

import com.xuecheng.framework.domain.course.CourseBase;
import com.xuecheng.framework.domain.course.CourseMarket;
import com.xuecheng.framework.domain.course.Teachplan;
import com.xuecheng.framework.domain.course.TeachplanMedia;
import com.xuecheng.framework.domain.course.ext.CategoryNode;
import com.xuecheng.framework.domain.course.response.*;
import com.xuecheng.framework.model.response.QueryResponseResult;
import com.xuecheng.framework.model.response.ResponseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.Map;

@Api(description = "提供课程管理的相关功能")
public interface CourseManagerControllerApi {
    @ApiOperation("通过id查询课程分级目录")
    Teachplan findById(String id);

    @ApiOperation("添加课程计划")
    ResponseResult addTeachplan(Teachplan teachplan);

    @ApiOperation("查询课程列表")
    QueryResponseResult findList(Integer page, Integer size);

    @ApiOperation("查询课程分类")
    CategoryNode findCateList();

    @ApiOperation("查询课程根据课程id")
    CourseBase findCourseById(String id);

    @ApiOperation("添加课程d")
    ResponseResult addCourse(CourseBase courseBase);

    @ApiOperation("修改课程")
    ResponseResult updateCourse(String id, CourseBase courseBase);

    @ApiOperation("课程营销查询")
    CourseMarket findMarketByCourseId(String id);

    @ApiOperation("课程营销添加")
    ResponseResult saveMarket(String id, CourseMarket courseMarket);

    @ApiOperation("课程图片添加")
    ResponseResult savePic(String fileId, String courseid);

    @ApiOperation("课程图片查询")
    FindPicResult findcoursePic(String courseid);

    @ApiOperation("课程图片删除")
    ResponseResult deletePic(String courseid);

    @ApiOperation("课程发布数据")
    CourseView findAllData(String courseid);

    @ApiOperation("课程预览")
    PreviewResult coursePreview(String courseid);

    @ApiOperation("课程发布")
    PublishResult coursepublish(String courseid);

    @ApiOperation("课程信息查询")
    CourseViewResult courseView(String courseid);

    @ApiOperation("添加课程媒资信息")
    ResponseResult savemedia(TeachplanMedia teachplanMedia);
}
